package com.ty.xiaoyu.mapper;

import com.ty.xiaoyu.entity.Notify;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface NotifyMapper {

    // 创建notify
    Integer insertNotify(@Param("notify") Notify notify);

    // 删除消息
    Integer deleteNotify(@Param("notifyId") String notifyId);

    // 获取全部通知
    List<Notify> queryAllNotifyList(@Param("userId") String userId);

    // 获取全部未读通知数量
    Integer queryAllNotifyListCount(@Param("userId") String userId);

    // 获取某类别通知数量
    Integer queryNotifyCount(@Param("userId") String userId,
                             @Param("notifyModuleId") String notifyModuleId);

    // 获取某类别通知列表
    List<Notify> queryNotifyList(@Param("userId") String userId,
                                 @Param("notifyModuleId") String notifyModuleId);

    // 寻找“赞”提醒通知，根据提醒信息的动作类型、发送者id、帖子id获取通知(逻辑不对，不应使用）
    Notify queryNotifyByNotifyTypeAndSenderIdAndTopicId(@Param("notifyModuleId") String notifyModuleId,
                                                        @Param("senderId") String senderId,
                                                        @Param("topicId") String topicId);

    // 更新已阅读状态
    Integer updateNotifyIsReadByUserIdAndModuleId(@Param("userId") String userId,
                                                  @Param("notifyModuleId") String notifyModuleId);

    // ==========================================


    // 获取公告
    List<Notify> queryAnnounceList(@Param("userId") String userId);

    // 获取公告数量
    Integer queryAnnounceListCount(@Param("userId") String userId);

    // 获取消息
    List<Notify> queryMessageList(@Param("userId") String userId);

    // 获取消息数量
    Integer queryMessageListCount(@Param("userId") String userId);

    // 获取赞
    List<Notify> queryGreatList(@Param("userId") String userId);

    // 获取赞数量
    Integer queryGreatListCount(@Param("userId") String userId);

    // 获取评论
    List<Notify> queryCommentList(@Param("userId") String userId);

    // 获取评论数量
    Integer queryCommentListCount(@Param("userId") String userId);





}
